
    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>谈谈MySQL中项目架构中的作用 - 学习卡片</title>
      <style>
        body { font-family: sans-serif; background-color: #f0f8ff; color: #333; display: flex; flex-direction: column; align-items: center; padding: 50px 20px; }
        .header h1 { font-size: 32px; }
        .grid-container { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; width: 100%; max-width: 1200px; }
        .card-container { perspective: 1200px; cursor: pointer; height: 250px; }
        .card { width: 100%; height: 100%; position: relative; transform-style: preserve-3d; transition: transform 0.7s; border-radius: 16px; box-shadow: 0 4px 16px rgba(0,0,0,0.08); }
        .card-container.flipped .card { transform: rotateY(180deg); }
        .card-face { position: absolute; width: 100%; height: 100%; backface-visibility: hidden; display: flex; flex-direction: column; box-sizing: border-box; border-radius: 16px; background-color: #fff; padding: 24px; }
        .card-back { background-color: #f0fff4; transform: rotateY(180deg); justify-content: space-between; }
        .card-category { font-size: 14px; color: #0052d9; margin-bottom: 8px; font-weight: 500; }
        .card-question { font-size: 20px; font-weight: 500; flex-grow: 1; display: flex; align-items: center; justify-content: center; text-align: center; }
        .card-answer-wrapper { flex-grow: 1; overflow-y: auto; }
        .card-answer { font-size: 15px; line-height: 1.7; }
        .card-footer { font-size: 13px; color: #8a919f; border-top: 1px solid #f0f0f0; padding-top: 16px; margin-top: 16px; }
        .card-source { font-size: 13px; color: #8a919f; border-top: 1px solid #f0f0f0; padding-top: 12px; margin-top: 12px; }
      </style>
    </head>
    <body>
      <div class="header">
        <h1>谈谈MySQL中项目架构中的作用 - 学习卡片</h1>
      </div>
      <div class="grid-container">
        
    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">理论</div>
          <div class="card-question">什么是数据持久化？数据库系统如何通过事务来保证数据的持久性和完整性？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">理论</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">数据持久化是指将应用程序中的数据保存到持久存储介质（如硬盘）中，以便在程序关闭或系统重启后数据依然存在。数据库系统通过事务管理确保ACID特性，将事务操作记录到事务日志中，以便在系统崩溃或故障时能够恢复数据到事务开始之前的状态，从而保证数据的持久性和完整性。</div>
          </div>
          <div class="card-source">来源: 数据持久化</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">机制</div>
          <div class="card-question">为了维护数据一致性，数据库管理系统通常采用哪些并发控制机制？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">机制</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">数据库管理系统使用并发控制机制来协调多个并发事务对数据库的访问，以防止数据读写冲突。文档中提到的机制包括锁机制和MVCC（多版本并发控制）。</div>
          </div>
          <div class="card-source">来源: 数据一致性和完整性 - 数据一致性（Consistency）</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">理论</div>
          <div class="card-question">请解释数据完整性中的“实体完整性”和“引用完整性”有何不同。</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">理论</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">实体完整性通过主键约束确保每个表的每一行数据都具有唯一标识，以防止重复数据的插入。引用完整性则通过外键约束来保持关联表之间的一致性，确保子表中的外键值总是对应父表中有效的主键值。</div>
          </div>
          <div class="card-source">来源: 数据一致性和完整性 - 数据完整性（Integrity）</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">技术</div>
          <div class="card-question">在进行数据查询时，有哪些关键方法可以用于查询优化和性能调优？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">技术</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">查询优化的关键方法包括：1. 索引优化：通过设计和使用索引来加速查询，减少数据扫描。2. 查询计划：数据库优化器生成高效的执行计划。查询性能调优的方法包括：1. 缓存：缓存查询结果以减少数据库访问。2. 分区和分片：将大表分散存储以提升并发查询性能。</div>
          </div>
          <div class="card-source">来源: 数据查询和检索 - 数据查询（Query）</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">技术</div>
          <div class="card-question">在数据安全实施策略中，“访问控制”的核心原则是什么？它是如何实现的？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">技术</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">访问控制的核心原则是“最小权限原则”，即授权用户只能访问他们工作所需的数据。它的实现方式包括：使用身份验证、角色权限管理和访问控制列表（ACL）来严格限制数据访问。</div>
          </div>
          <div class="card-source">来源: 数据安全 - 数据安全的实施策略</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">理论</div>
          <div class="card-question">请区分系统的“水平扩展”与“垂直扩展”这两个概念。</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">理论</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">水平扩展是通过增加更多的计算节点或实例来分散负载，从而提升系统的吞吐量和并发处理能力。而垂直扩展是通过升级单个服务器的硬件资源（如CPU、内存）来提升其性能和处理能力。</div>
          </div>
          <div class="card-source">来源: 扩展性</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">技术</div>
          <div class="card-question">文档中提到了三种主要的数据备份类型，它们分别是什么？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">技术</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">文档中提到的三种主要备份类型是：1. 完全备份：复制整个数据库或系统的所有数据。2. 增量备份：只备份自上次完全备份或增量备份以来发生变化的数据。3. 差异备份：备份自上次完全备份后所有发生变化的数据。</div>
          </div>
          <div class="card-source">来源: 数据备份和恢复 - 数据备份策略</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">理论</div>
          <div class="card-question">在数据恢复策略中，恢复点目标（RPO）和恢复时间目标（RTO）分别衡量什么？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">理论</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">恢复点目标（RPO）指的是在发生数据丢失时，可以接受的最大数据丢失量。恢复时间目标（RTO）指的是在数据丢失或系统故障后，恢复系统和数据的最大允许时间。</div>
          </div>
          <div class="card-source">来源: 数据备份和恢复 - 数据恢复策略</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">技术</div>
          <div class="card-question">除了数据库设计层面的优化（如索引和分区），文档还提到了哪些其他层面的性能优化策略？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">技术</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">文档还提到了其他层面的性能优化策略，包括：1. 查询和数据访问优化（如使用缓存机制）；2. 程序设计和编码优化（如优化算法，避免过度使用ORM）；3. 服务器和硬件优化（如硬件升级和负载均衡）；4. 监控和调优（如实时监控和性能分析）。</div>
          </div>
          <div class="card-source">来源: 性能优化</div>
        </div>
      </div>
    </div>

      </div>
    </body>
    </html>
